#pragma once

#include "Config.h"

enum direcaoCamera{
	
	DIREITA,
	ESQUERDA,
	CIMA,
	BAIXO
};

class GerenciadorCamera{
	
private:

	ICameraSceneNode *camera;
	float velocidadeMovimentacao, velocidadeRotacao;

public:

	GerenciadorCamera(ISceneManager *cena, vector3df posicao, vector3df lookAt);
	GerenciadorCamera(ISceneManager *cena, vector3df posicao, vector3df lookAt, float velocidadeMovimentacao, float velocidadeRotacao);
	~GerenciadorCamera(void);

	float* getPosicaoXYZ(void);
	float getPosicaoX(void);
	float getPosicaoY(void);
	float getPosicaoZ(void);

	void setVelocidadeMovimentacao(float novaVelocidade);
	float getVelocidadeMovimentacao(void);

	void setVelocidadeRotacao(float novaVelocidade);
	float getVelocidadeRotacao(void);
	
	void setPosicao(float x, float y, float z);
	void setLookAtCamera(float x, float y, float z);

	void movimentar(direcaoCamera direcao);
	void rotacionar();
};
